﻿using Entidade.Entidades;
using Negocio;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Interface
{
    public partial class WebEntityFramework : System.Web.UI.Page
    {
        protected void Page_Load( object sender, EventArgs e )
        {
            if ( !IsPostBack )
            {
                Listar();
            }
        }

        protected void DropDownList1_SelectedIndexChanged( object sender, EventArgs e )
        {
            resultado.Text = string.Empty;
            PreencherDadosTela( new NgFilme().Consultar( Convert.ToInt32( filmes.SelectedValue ) ) );

        }

        private void Listar()
        {
            filmes.Items.Clear();

            using ( NgFilme nFilme = new NgFilme() )
            {
                filmes.DataSource = nFilme.Listar();
                filmes.DataValueField = "idFilme";
                filmes.DataTextField = "titulo";
                filmes.DataBind();
            }
        }

        protected void atualizar_Click( object sender, EventArgs e )
        {
            using ( NgFilme nFilme = new NgFilme() )
            {
                var filme = nFilme.Consultar( Convert.ToInt32( filmes.SelectedItem.Value ) );

                filme.titulo = titulo.Text;
                filme.dataLancamento = DateTime.Parse( dataLancamento.Text );

                nFilme.Alterar( filme );
                resultado.Text = "Atualizou o filme" + filme.titulo;
                Listar();
            }
        }

        private void PreencherDadosTela( filme filme )
        {
            titulo.Text = filme.titulo;
            dataLancamento.Text = filme.dataLancamento.ToString();
        }

        protected void gravar_Click( object sender, EventArgs e )
        {
            using ( NgFilme nFilme = new NgFilme() )
            {
                filme filme = new filme()
                    {
                        titulo = titulo.Text,
                        dataLancamento = DateTime.Parse( dataLancamento.Text )
                    };

                nFilme.Adicionar( filme );
                resultado.Text = "Adicionou o filme " + filme.titulo;
                Listar();
            }
        }

        protected void excluir_Click( object sender, EventArgs e )
        {
            using ( NgFilme nFilme = new NgFilme() )
            {
                nFilme.Excluir( Convert.ToInt32( filmes.SelectedItem.Value ) );
                resultado.Text = "Filme excluído.";
                Listar();
            }
        }

        protected void novo_Click( object sender, EventArgs e )
        {
            titulo.Text = string.Empty;
            dataLancamento.Text = string.Empty;
            titulo.Focus();
        }
    }
}